package com.xiyu.service.service.customer;

import com.xiyu.service.vo.customer.customer.CustomerTransferInput;
import com.xiyu.service.vo.customer.customer.CustomerGetMailInfoByCustomerIdsOutput;
import com.xiyu.service.vo.customer.customer.CustomerGetMailInfoByCustomerIdsInput;
import com.xiyu.service.vo.customer.customer.CustomerCreateFollowInput;
import com.xiyu.service.vo.customer.customer.CustomerPutInPoolOutput;
import com.xiyu.service.vo.customer.customer.CustomerPutInPoolInput;
import com.xiyu.service.vo.customer.customer.CustomerSingleGetDetailOutput;
import com.xiyu.service.vo.customer.customer.CustomerUpdateInput;
import com.xiyu.service.vo.customer.customer.CustomerCreateInput;
import com.xiyu.service.vo.customer.customer.CustomerPageQueryOutput;
import com.xiyu.service.vo.customer.customer.CustomerPageQueryInput;
import java.util.*;
//import com.xiyu.service.vo.customer.customer.*;
import com.xiyu.service.framework.web.web.core.pojo.PageResult;

/**
 * 客户管理 Service 接口
 */
public interface CustomerService {

    PageResult<CustomerPageQueryOutput> pageQuery(CustomerPageQueryInput inputVO);

    Long create(CustomerCreateInput inputVO);

    Boolean update(CustomerUpdateInput inputVO);

    Boolean setRecycle(List<Long> ids);

    Boolean restore(List<Long> ids);

    Boolean deleted(List<Long> ids);

    CustomerSingleGetDetailOutput singleGetDetail(Long id);

    List<CustomerPutInPoolOutput> putInPool(CustomerPutInPoolInput inputVO);

    Long createFollow(CustomerCreateFollowInput inputVO);

    List<CustomerGetMailInfoByCustomerIdsOutput> getMailInfoByCustomerIds(CustomerGetMailInfoByCustomerIdsInput inputVO);

    Boolean transfer(CustomerTransferInput inputVO);

}
